// eslint-disable-next-line @typescript-eslint/no-var-requires
require('dotenv').config()
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
// 引入包 配置ejs
import { NestExpressApplication } from '@nestjs/platform-express';
import { join } from 'path';
import { Logger } from '@nestjs/common';
import * as cookieParser from 'cookie-parser';
import * as session from 'express-session';

async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule);
  // 配置静态文件的目录
  //方式一是直接访问:localhost:4000/1.jpg
  //app.useStaticAssets(join(__dirname, '..', 'public'));
  //方式二是访问:localhost:4000/static/1.jpg但是在public文件夹下不需要创建static目录
  app.useStaticAssets(join(__dirname, '..', 'public'), {
    prefix: '/static/'
  });
  // 配置视图文件的目录
  app.setBaseViewsDir(join(__dirname, '..', 'views'));
  app.setViewEngine('ejs');

  // cookie SECRE是配置的cookie的签名
  app.use(cookieParser(process.env.SECRET))

  // 配置中间件使用session,加盐是123456(随便写的)
  app.use(session({ secret: '123456', cookie: { maxAge: 60000 } }))

  await app.listen(3000);
  Logger.log('服务器已经启动:localhost:3000')
}
bootstrap();
